# 抖码算法，让算法学习变得简单有趣
# 作者：老汤

"""
题目 2：日志排序
题目描述：
运维工程师采集到某产品线网运行一天产生的日志n条，现需根据日志时间先后顺序对日志进行排序，日志时间格式为H:M:S.N。
H表示小时(0~23)
M表示分钟(0~59)
S表示秒(0~59)
N表示毫秒(0~999)

时间可能并没有补全，也就是说，01:01:01.001也可能表示为1:1:1.1。

输入描述：
第一行输入一个整数n表示日志条数，1<=n<=100000，接下来n行输入n个时间。

输出描述：
按时间升序排序之后的时间，如果有两个时间表示的时间相同，则保持输入顺序。

示例：
输入：
2
01:41:8.9
1:1:09.211

输出：
1:1:09.211
01:41:8.9

输入：
3
23:41:08.023
1:1:09.211
08:01:22.0

输出：
1:1:09.211
08:01:22.0
23:41:08.023

输入：
2
22:41:08.023
22:41:08.23

输出：
22:41:08.023
22:41:08.23
"""


from functools import cmp_to_key


def get_millisecond(time: str):
    dot_index = time.index(".")
    ms = int(time[dot_index + 1:len(time)])
    h_m_s = time[0:dot_index].split(":")
    ms += int(h_m_s[2]) * 1000
    ms += int(h_m_s[1]) * 60 * 1000
    ms += int(h_m_s[0]) * 60 * 60 * 1000
    return ms


def _sort(o1, o2):
    return get_millisecond(o1) - get_millisecond(o2)


n = int(input())
date_strs = [None] * n
for i in range(n):
    date_strs[i] = str(input())

# 按照时间升序排列
date_strs.sort(key=cmp_to_key(_sort))

for s in date_strs:
    print(s)